package com.bdqn.ch09.shiro;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.text.IniRealm;
import org.junit.jupiter.api.Test;

import javax.security.auth.Subject;

public class ShiroTester {
    @Test
    public void testShiro(){
        IniRealm realm = new IniRealm("classpath:shiro.ini");
        DefaultSecurityManager securityManager = new DefaultSecurityManager();

        securityManager.setRealm(realm);
        SecurityUtils.setSecurityManager(securityManager);

        Subject subject = SecurityUtils.getSubject();

        UsernamePasswordToken token = new UsernamePasswordToken("admin" , "123456");

        try{
            subject.login(token);
        }catch (AuthenticationException e){
            e.printStackTrace();
        }
        System.out.println("是否认证通过："+subject.isAuthenticated());
        System.out.println("身份证信息："+subject.getPrincipals());
    }
}
